package com.itheima.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.itheima.pojo.*;

import java.util.List;
import java.util.Map;

public interface EmpService extends IService<Emp> {

    /**
     * 分页查询
     * @param pageNum 页码
     * @param pageSize 每页数据
     * @return 封装分页数据的实体类
     */
//    PageResult<Emp> queryEmpList(Integer pageNum, Integer pageSize);
    // 条件查询
//    PageResult<Emp> conditionQueryEmpList(Integer page, Integer pageSize, String name, Integer gender, Integer job, LocalDate begin, LocalDate end);

    /**
     * 根据id删除员工
     * @param id 员工的id
     * @return 影响的行数
     */
//    Integer delEmpById(List<Integer> id);
//
//    Emp queryEmpById(Integer id);
//
//    PageResult<Emp> conditionQueryEmpList(EmpQueryParam empQueryParam);

//    /**
//     * 添加员工
//     * @param emp
//     */
//    void addEmp(Emp emp);
//
//    /**
//     * 修改员工
//     * @param emp
//     */
//    void updateEmp(Emp emp);

    /**
     * 统计各个职位的员工人数
     * @return
     */
    JobOption getEmpJobData();

    /**
     * 统计各个性别的员工人数
     * @return
     */
    List<Map> getEmpGenderData();
    /**
     * 统计各个班级的学生人数
     */
    StudentCountOption getStudentCountData();

    /**
     * 统计各个学历的学生人数
     * @return
     */
    List<Map> getStudentDegreeData();

//    /**
//     * 查询全部员工
//     * @return
//     */
//    List<Emp> queryList();

    /**
     * 登录功能
     * @param empDto
     * @return
     */
    LoginInfo login(EmpDto empDto);

    /**
     * 分页查询 + mybatisPlus
     * @param empQueryParam
     * @return
     */
    PageResult<Emp> conditionQueryEmpList(EmpQueryParam empQueryParam);

    /**
     * 根据id查询员工 + mybatisPlus
     * @param id
     * @return
     */
    Emp queryEmpAndExpr(Integer id);

    /**
     * 新增员工和经历 + mybatisPlus
      * @param emp
     */
    void addEmpAndExpr(Emp emp);

    /**
     * 删除员工和经历 + mybatisPlus
     * @param ids
     * @return
     */
    Integer delEmpById(List<Integer> ids);

    /**
     * 修改员工和员工经历 + mybatisPlus
     * @param emp
     */
    void updateEmpAndExpr(Emp emp);
}
